package br.com.cfccultura.admin.model.dao.mysql;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

import br.com.cfccultura.admin.model.dao.IAvaliacaoCursoDAO;
import br.com.cfccultura.admin.model.enums.Ativo;
import br.com.cfccultura.admin.model.vo.AvaliacaoCurso;

@Repository
public class AvaliacaoCursoDAO extends DAO implements IAvaliacaoCursoDAO {

	@Override
	public List<AvaliacaoCurso> consultar(AvaliacaoCurso vo) {

		String sql = "SELECT cd_avaliacao_curso, dc_avaliacao_curso, id_ativo FROM tb_avaliacao_curso where ";
		Object[] params = {};
		if(vo.getCodigo() != null) {
			sql += "cd_avaliacao_curso = ? and ";
			params = new Object[]{vo.getCodigo()};
		}
		
		sql += "id_ativo = 1 order by dc_avaliacao_curso";

		List<AvaliacaoCurso> result = query(sql, params, new RowMapper<AvaliacaoCurso>() {
			@Override
			public AvaliacaoCurso mapRow(ResultSet rs, int arg1) throws SQLException {
				AvaliacaoCurso vo = new AvaliacaoCurso();
				vo.setCodigo(rs.getInt("cd_avaliacao_curso"));
				vo.setDescricao(rs.getString("dc_avaliacao_curso"));
				vo.setAtivo(Ativo.setValue(rs.getInt("id_ativo")));
				return vo;
			}			
		});		
		
		return result;
	}
	
	@Override
	public AvaliacaoCurso consultar(Integer codigo) {
		List<AvaliacaoCurso> motivos = consultar(new AvaliacaoCurso(codigo));
		if(motivos.size() > 0)
			return motivos.get(0);
		throw new RuntimeException("Codigo MotivoAprovacao inválido -> " + codigo);
	}

}
